<?php
namespace Admin\Controller;
use Think\Controller;

//商品分类控制器
class GoodcategoryController extends CommonController{
	//分类列表
	public function index() {
		//获得数据
		$data = M('goodcategory')->select();
		//视图
		$this->assign("data",$data);
		$this->display();
	}
	//添加分类
	public function add(){
		//处理表单
		if(IS_POST){
//			$rst = M('goodcategory')->data(I('post.'))->add();  // 如果主键是自动增长型 成功后返回值就是最新插入的值，返回id
			$rst = $this->create('goodcategory','add');
			if($rst===false){
				$this->error('添加分类失败');
			}
			echo "<script language='javascript' type='text/javascript'>alert('添加分类成功')</script>";
			$url = __CONTROLLER__."/index";
			echo "<script language='javascript' type='text/javascript'>window.location.href='$url'</script>";
			//			header('location:'.);
			return;
		}
		//视图
		$data = D('Goodcategory')->getList(); //获得分类列表，排序好了的，无缩进
		$this->assign("data",$data);
		$this->display();
	}

	//AJAX-添加分类  在index.html中直接使用该方法
	public function addhang(){
		if(IS_POST){
			$rst=M('goodcategory')->data(I('post.'))->add();  // 如果主键是自动增长型 成功后返回值就是最新插入的值，返回id
			$this->ajaxReturn($rst);	//返回到ajax中是msg
		}
		//return "ff";
	}
	//修改分类
	public function update(){
		$id = I('get.GoodcategoryId',0,'int');
		//处理表单
		if(IS_POST){
			//不允许将当前分类及其子孙分类作为父分类
			$ids = D('goodcategory')->getSubIds($id);
			$level = I('post.level',0,'int');
			if(in_array($level,$ids)){    //在数组$ids中搜索值 $level	，如果当前深度在这个子树中，则不允许
				$this->error('不允许将当前分类及其子孙分类作为父分类');
			}
			//保存分类数据
			if(I('post.CategoryName')==''){
				echo "<script language='javascript' type='text/javascript'>alert('分类名称不可为空！')</script>";
				$url = getenv("HTTP_REFERER");		//返回上一页（表单提价后返回，带参数）
				echo "<script language='javascript' type='text/javascript'>window.location.href='$url'</script>";
				return false;
			}
			//$rst=M('goodcategory')->where("GoodcategoryId=$id")->save(I('post.',2));
			$rst = $this->create('goodcategory','save',2,"GoodcategoryId=$id");
				
			if($rst===false){
				$this->error('修改分类失败');
			}
			$this->success('修改分类成功',U('index'));
			return;
		}
		//获取指定分类ID的数据
		$data['me']=M('goodcategory')->where("GoodcategoryId=$id")->find();

		//获取所有分类列表
		$data['tree']=D('goodcategory')->getList();
		$this->assign($id);
		$this->assign($data);
		$this->display();
	}
	//AJAX-删除分类
	public function remove(){
		$id = I('get.GoodcategoryId',0,'int');
		$category = M('goodcategory');
		//判断是否为最底级分类
		if($category->where("level=$id")->limit(1)->getField('GoodcategoryId')){	//查看当前的节点是否就在最底层，如果在最底层，父节点中是不会有当前节点id存在的（叶子节点）
			$this->ajaxReturn(array('flag'=>false,'msg'=>'只允许删除最底层分类'));
		}
		if(M('goods')->where("GoodcategoryId=$id")->limit(1)->getField('GoodcategoryId')){
			$this->ajaxReturn(array('flag'=>false,'msg'=>'请先删除本分类下所有商品'));
		}
		//删除关联属性
		M('Goodattribute')->where("GoodcategoryId=$id")->delete();
		//删除分类
		$rst = $category->where("GoodcategoryId=$id")->delete();
		//删除关联商品
		//D('goods')->delAllByCid($id);
		//返回结果
		$this->ajaxReturn(array('flag'=>true));
	}
}
